﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Castle.ActiveRecord;
using Atendex.Dominio;
using Atendex.Dominio.Interfaces;

namespace Atendex.Dominio.ActiveRecord
{
    [ActiveRecord("tipo_solicitante")]
    [Serializable]
    public class TipoSolicitanteAR : ActiveRecordBase<TipoSolicitanteAR>, ITipoSolicitante
    {
        private TipoSolicitanteAR()
        {
        }

        internal TipoSolicitanteAR(string nome)
        {
            Nome = nome;
            Ativo = true;
        }

        [PrimaryKey]
        public int Id { get; set; }

        [Property]
        public string Nome { get; set; }

        [Property]
        public bool Ativo {get; set; }

        [HasAndBelongsToMany(typeof(TipoSolicitacaoAR), Table="tipo_solicitacao_tipo_solicitante", 
            ColumnKey = "tipo_solicitacao_id", ColumnRef = "tipo_solicitante_id", Inverse=true)]
        public IList<ITipoSolicitacao> SolicitacoesPermitidas { get; set; }
    }
}
